
# -*- coding: utf-8 -*-#
#-------------------------------------------------------------------------------
# 建立者:        Young  
# Name:         demo12.09
# Description:
# Author:       $赵怡蕾
# Date:         2019/3/19
#-------------------------------------------------------------------------------

from collections import deque
# 创建一个包含10个数字的双端队列
q = deque(range(10))
# 运行结果：deque([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
print(q)
# 将100追加到双端队列q的队尾
q.append(100)
# 将-100追加到双端队列q的队尾
q.append(-100)
# 运行结果：deque([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 100, -100])
print(q)
# 将20追加到双端队列q的队首
q.appendleft(20)
# 运行结果：deque([20, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 100, -100])
print(q)
# 弹出队尾的值，运行结果：-100
print(q.pop())
# 运行结果：deque([20, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 100])
print(q)
# 弹出队首的值，运行结果：20
print(q.popleft())
# 运行结果：deque([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 100])
print(q)
# 将双端队列中的元素向左循环移动两个位置，也就是队首的元素会移动到队尾
q.rotate(-2)
# 运行结果：deque([2, 3, 4, 5, 6, 7, 8, 9, 100, 0, 1])
print(q)
# 将双端队列中的元素向右循环移动两个位置，也就是队尾的元素会移动到队首
q.rotate(4)
# 运行结果：deque([9, 100, 0, 1, 2, 3, 4, 5, 6, 7, 8])
print(q)
# 创建一个双端队列q1
q1 = deque(['a','b'])
# 将q1追加到q的后面
q.extend(q1)
# 运行结果：deque([9, 100, 0, 1, 2, 3, 4, 5, 6, 7, 8, 'a', 'b'])
print(q)
# 将q1追加到q的前面，这时q1会倒序排列
q.extendleft(q1)
# 运行结果：deque(['b', 'a', 9, 100, 0, 1, 2, 3, 4, 5, 6, 7, 8, 'a', 'b'])
print(q)